
// #include <stdio.h>

// int main(int argc, char const *argv[])
// {
// 	char buf[1024];
// 	float *a = (float *)(buf + 15);
// 	double *b = (double *)(buf + 15);
// 	int *c = (int *)(buf + 15);
// 	long *d = (long *)(buf + 15);

// 	printf("addr: a, b, c, d: %p, %p, %p, %p\n", a, b, c, d);
// 	// *a = 1;
// 	// *b = 1;
// 	*c = 1; 
// 	*d = 1;
// 	printf("=========\n");
// 	printf("val: a, b, c, d: ");
// 	printf("%f, ", *a);
// 	printf("%lf, ", *b);
// 	printf("%d, ", *c);
// 	printf("%ld\n", *d);
// 	return 0;
// }


#include <stdio.h>

int main()
{
	struct {
		char 	p;
		int 	a;
		float 	b;
		double 	c;
	} __attribute__ ((packed)) x;

	x.a = 100;
	x.b = 1.5;
	x.c = 2.5;

	printf ("x.a=%d, \taddr=%p\n", x.a, &x.a);
	printf ("x.b=%f, \taddr=%p\n", x.b, &x.b);
	printf ("x.c=%lf,\taddr=%p\n", x.c, &x.c);

	return 0;
}

